tomcat热加载、热部署 | 您所在的位置:网站首页 › tomcat热部署 线程复用 › tomcat热加载、热部署 |
上文:tomcat线程模型-源码解析 热加载和热部署是什么? 请查看原来的写过的文章:热部署和热加载有什么区别? tomcat热加载和执热部署都是通过后台进程检测项目中的.class和目录是否发生变化。 热加载与热部布署检测 热加载 开启热加载 在 context.xml 中配置 reloadable="true" 代码语言:javascript复制![]() 配置完后tomcat运行中会检测WEB-INF/classes和WEB-INF/lib 是否发生变化,如果发生变化进行加载。 那么热加载的流程是: 设置当前context(上下文)不能接受请求的标志为:true, 停止当前的context(上下文),启动当前context(上下文),重新设置当前context不能接收请求的标志为:false。 代码位置:org.apache.catalina.core.ContainerBase.ContainerBackgroundProcessor#run 每隔10s就会自动检测是否有代码变动。 源码实现 热部署和热加载为该线程 位置:org.apache.catalina.core.ContainerBase#threadStart 代码语言:javascript复制protected void threadStart() { if (thread != null) { return; } if (backgroundProcessorDelay |
CopyRight 2018-2019 实验室设备网 版权所有 |